gpsusbwin: Fix access violation in 'get_garmin_mountpoints'.
authoroliskoli <oliskoli>
Sun, 21 Sep 2008 21:42:36 +0000 (21:42 +0000)
committeroliskoli <oliskoli>
Sun, 21 Sep 2008 21:42:36 +0000 (21:42 +0000)
jeeps/gpsusbwin.c

index 0b8c73847e9e5d715a8562a910a955cb44f26ea2..3bcbe5fcab330461d9eac058361410735cd8c535 100644 (file)
@@ -190,12 +190,14 @@ static char ** get_garmin_mountpoints(void)
 #define BUFSIZE 512
   TCHAR szTemp[MAX_PATH];
   char *p = szTemp;
-  char **dlist = xmalloc(0);
+  char **dlist = xmalloc(sizeof(*dlist));
+
   int i = 0;
+  dlist[0] = NULL;
 
   if (GetLogicalDriveStrings(BUFSIZE-1, szTemp)) {
     while(*p) {
-      dlist = xrealloc(dlist, sizeof (*dlist ) * ++i);
+      dlist = xrealloc(dlist, sizeof (*dlist ) * (++i + 1));
       //            fprintf(stderr, "Found: %d, %s\n", i, p);
       dlist[i-1] = xstrdup(p);
       dlist[i] = NULL;